diff options
Diffstat (limited to 'src/app/(main)/admin/users/[userId]/UserProvider.tsx')
| -rw-r--r-- | src/app/(main)/admin/users/[userId]/UserProvider.tsx | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/app/(main)/admin/users/[userId]/UserProvider.tsx b/src/app/(main)/admin/users/[userId]/UserProvider.tsx new file mode 100644 index 0000000..ea01915 --- /dev/null +++ b/src/app/(main)/admin/users/[userId]/UserProvider.tsx @@ -0,0 +1,20 @@ +import { Loading } from '@umami/react-zen'; +import { createContext, type ReactNode } from 'react'; +import { useUserQuery } from '@/components/hooks/queries/useUserQuery'; +import type { User } from '@/generated/prisma/client'; + +export const UserContext = createContext<User>(null); + +export function UserProvider({ userId, children }: { userId: string; children: ReactNode }) { + const { data: user, isFetching, isLoading } = useUserQuery(userId); + + if (isFetching && isLoading) { + return <Loading placement="absolute" />; + } + + if (!user) { + return null; + } + + return <UserContext.Provider value={user}>{children}</UserContext.Provider>; +} |